#pragma once
#include <string>
 #include "trt_define.h"
 _TRT_INFER_BEGIN

namespace TrtBuilder {

enum class ModelType : int {
    FP32 = 0,
    FP16 = 1,
    INT8 = 2
};

const char* model_string(ModelType type);

bool  __declspec(dllexport) compile(
    ModelType model_type,
    unsigned int max_batch_size,
    const std::string& source_model_path,
    const std::string& save_model_path,
    const size_t maxWorkspaceSize = 1ul << 30           // 1ul: 1 unsigned long 1 << 30: 1GB
);

} // namespace TrtBuilder
 _TRT_INFER_END